home *** CD-ROM | disk | FTP | other *** search
- * asmsupp.i
- *
- ********************************************************************************************
- *assorted low level assembly support routines used by the Commodore sample Library & Device
- *******************************************************************************************
- *
- *
- * Copyright (c) 1992 Commodore-Amiga, Inc.
- *
- * This example is provided in electronic form by Commodore-Amiga, Inc. for
- * use with the "Amiga ROM Kernel Reference Manual: Libraries", 3rd Edition,
- * published by Addison-Wesley (ISBN 0-201-56774-1).
- *
- * The "Amiga ROM Kernel Reference Manual: Libraries" contains additional
- * information on the correct usage of the techniques and operating system
- * functions presented in these examples. The source and executable code
- * of these examples may only be distributed in free electronic form, via
- * bulletin board or as part of a fully non-commercial and freely
- * redistributable diskette. Both the source and executable code (including
- * comments) must be included, without modification, in any copy. This
- * example may not be published in printed form or distributed with any
- * commercial product. However, the programming techniques and support
- * routines set forth in these examples may be used in the development
- * of original executable software products for Commodore Amiga computers.
- *
- * All other rights reserved.
- *
- * This example is provided "as-is" and is subject to change; no
- * warranties are made. All use is at your own risk. No liability or
- * responsibility is assumed.
-
- CLEAR MACRO ;quick way to clear a D register on 68000
- MOVEQ #0,\1
- ENDM
-
- LINKSYS MACRO ; link to a library without having to see a _LVO
- MOVE.L A6,-(SP)
- MOVE.L \2,A6
- JSR _LVO\1(A6)
- MOVE.L (SP)+,A6
- ENDM
-
- CALLSYS MACRO ; call a library via A6 without having to see _LVO
- JSR _LVO\1(A6)
- ENDM
-
- XLIB MACRO ; define a library reference without the _LVO
- XREF _LVO\1
- ENDM
- ;
- ; Put a message to the serial port at 9600 baud. Used as so:
- ;
- ; PUTMSG 30,<'%s/Init: called'>
- ;
- ; Parameters can be printed out by pushing them on the stack and
- ; adding the appropriate C printf-style % formatting commands.
- ;
- XREF KPutFmt
- PUTMSG: MACRO * level,msg
-
- IFGE INFO_LEVEL-\1
-
- PEA subSysName(PC)
- MOVEM.L A0/A1/D0/D1,-(SP)
- LEA msg\@(pc),A0 ;Point to static format string
- LEA 4*4(SP),A1 ;Point to args
- JSR KPutFmt
- MOVEM.L (SP)+,D0/D1/A0/A1
- ADDQ.L #4,SP
- BRA.S end\@
-
- msg\@ DC.B \2
- DC.B 10
- DC.B 0
- DS.W 0
- end\@
- ENDC
- ENDM
-
-